大家好,我是Karin。今天要來學習的內容是JavaScript中物件的淺拷貝、深拷貝。
學習內容來自:彭彭的教學影片
https://www.youtube.com/watch?v=tnT-XbrOKA0&list=PL-g0fdC5RMbqW54tWQPIVbhyl_Ky6a2VI&index=33&t=394s
淺拷貝:只會拷貝物件的第一層資料。
層次:在一個物件/陣列中,又包含著其他物件/陣列,就會產生層次。
兩種淺拷貝的方法:
let a={x:3,y:4,z:[1,2,3]};
//方法一:使用其餘運算...
let b={...a};
//方法二:使用內建方法Object.assign()
let c=Object.assign({},a);
淺拷貝的特性:
第二層以上的資料不會被拷貝,會參考到原本的實體。
用個簡單的例子來演練
let a={x:3,y:4,z:[1,2,3]};
let b={...a};
b.z[0]=6; //更動新物件b的第二層內容時,也會改變到原本a物件的內容
console.log(a.data[0]); //此處會印出6
明天繼續補上X_X